package com.deyuanyun.pic.settings.service.base;

import com.deyuanyun.pic.settings.controller.dto.base.DefectInfoDTO;
import com.deyuanyun.pic.settings.controller.dto.base.FeatureTypeDTO;
import com.deyuanyun.pic.settings.controller.dto.base.NewlyTaskDTO;

import java.math.BigDecimal;
import java.util.List;

/**
 *  业务阀值客户端调用接口业务接口类
 *  @author axiao(xj08.dream@gmail.com)
 *  @date 2016-07-01
 *  @version 1.0
 *  Histroy: [修改人][时间][描述]
 */
public interface BizMsgThresholdIntefaceService {

    /**
     * 根据管道id、起始绝对距离、终止绝对距离相匹配的最新的两次检测任务
     * @param pipeLineId 管段id
     * @param fromPipeValveroomId 起始位置
     * @param toPipeValveroomId 终止位置
     * @return
     */
    public List<NewlyTaskDTO> queryNewlyTask(String pipeLineId, String fromPipeValveroomId, String toPipeValveroomId);

    /**
     * 根据管道id和检测任务id 查询对应金属损失缺陷信息
     * @param pipeLineId 管道id
     * @param taskId 检测任务id
     * @param type 为0是外部金属损失，为1是内部金属损失
     * @return
     */
    public NewlyTaskDTO queryMetalLoss(String pipeLineId, String taskId, String type);

    /**
     * 统计金属损失缺陷信息边对应管道下面每个缺陷的数量
     * @param pipeLineId 管道id
     * @param beginMileage 起始绝对距离
     * @param endMileage 终止绝对距离
     * @return
     */
    public List<FeatureTypeDTO> countFeatureType(String pipeLineId, BigDecimal beginMileage, BigDecimal endMileage);

    /**
     * 根据条件查询立即维修的管道
     * @param pipeLineId 管道id
     * @param beginMileage 起始绝对距离
     * @param endMileage 终止绝对距离
     * @return
     */
    public List<DefectInfoDTO> queryImmeRepairDefects(String pipeLineId, BigDecimal beginMileage, BigDecimal endMileage);

    /**
     * 根据缺陷id集合得到其中评价最迟维修时间最早的一条缺陷点信息
     * @param defectIds
     * @return
     */
    public DefectInfoDTO queryTheFirstDefect(List<String> defectIds);
}
